[INFO] cloning repository https://github.com/rpruizc/rustipfs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rpruizc/rustipfs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frpruizc%2Frustipfs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frpruizc%2Frustipfs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] aca959438a8e8430390896230ad2c419ec42ae74
[INFO] fixing rpruizc/rustipfs against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frpruizc%2Frustipfs" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rpruizc/rustipfs
[INFO] finished tweaking git repo https://github.com/rpruizc/rustipfs
[INFO] tweaked toml for git repo https://github.com/rpruizc/rustipfs written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rpruizc/rustipfs on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rpruizc/rustipfs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1
[INFO] running `Command { std: "docker" "start" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   anyhow v1.0.34 removed features: default, std
[INFO] [stderr]   blake2b_simd v0.5.11 removed features: default, std
[INFO] [stderr]   either v1.6.1 (as host dependency) removed features: default, use_std
[INFO] [stderr]   libc v0.2.80 (as host dependency) removed features: align
[INFO] [stderr]   sha2 v0.9.2 removed features: default
[INFO] [stderr]   snow v0.7.2 removed features: aes-gcm, blake2, chacha20poly1305, default-resolver, rand, sha2, x25519-dalek
[INFO] [stderr]   tokio v0.2.23 removed features: winapi
[INFO] [stderr] 
[INFO] [stderr]    Compiling libc v0.2.80
[INFO] [stderr]    Compiling syn v1.0.53
[INFO] [stderr]    Compiling anyhow v1.0.34
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling hashbrown v0.9.1
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]    Compiling bytes v0.5.6
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling indexmap v1.6.0
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking subtle v2.3.0
[INFO] [stderr]    Compiling multimap v0.8.2
[INFO] [stderr]     Checking futures-core v0.3.8
[INFO] [stderr]     Checking once_cell v1.5.2
[INFO] [stderr]    Compiling proc-macro-nested v0.1.6
[INFO] [stderr]     Checking futures-sink v0.3.8
[INFO] [stderr]     Checking futures-io v0.3.8
[INFO] [stderr]     Checking block-padding v0.2.1
[INFO] [stderr]     Checking smallvec v1.5.0
[INFO] [stderr]     Checking futures-task v0.3.8
[INFO] [stderr]     Checking cpuid-bool v0.1.2
[INFO] [stderr]     Checking digest v0.8.1
[INFO] [stderr]    Compiling cc v1.0.65
[INFO] [stderr]     Checking futures-channel v0.3.8
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling serde_derive v1.0.117
[INFO] [stderr]     Checking keccak v0.1.0
[INFO] [stderr]     Checking unsigned-varint v0.5.1
[INFO] [stderr]     Checking data-encoding v2.3.1
[INFO] [stderr]    Compiling serde v1.0.117
[INFO] [stderr]     Checking blake2s_simd v0.5.11
[INFO] [stderr]     Checking blake2b_simd v0.5.11
[INFO] [stderr]     Checking crypto-mac v0.7.0
[INFO] [stderr]     Checking sha2 v0.9.2
[INFO] [stderr]     Checking sha3 v0.9.1
[INFO] [stderr]     Checking sha-1 v0.9.2
[INFO] [stderr]     Checking getrandom v0.1.15
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking hmac v0.7.1
[INFO] [stderr]     Checking block-buffer v0.7.3
[INFO] [stderr]     Checking signature v1.2.2
[INFO] [stderr]     Checking fake-simd v0.1.2
[INFO] [stderr]     Checking url v2.2.0
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]     Checking ed25519 v1.0.3
[INFO] [stderr]     Checking futures-timer v3.0.2
[INFO] [stderr]     Checking hmac-drbg v0.2.0
[INFO] [stderr]    Compiling which v3.1.1
[INFO] [stderr]     Checking bs58 v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking sha2 v0.8.2
[INFO] [stderr]     Checking parking_lot_core v0.8.0
[INFO] [stderr]     Checking block-cipher v0.8.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.36
[INFO] [stderr]     Checking universal-hash v0.4.0
[INFO] [stderr]     Checking signal-hook-registry v1.2.2
[INFO] [stderr]     Checking pin-project-lite v0.1.11
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking aes-soft v0.5.0
[INFO] [stderr]     Checking polyval v0.4.2
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking stream-cipher v0.7.1
[INFO] [stderr]     Checking aead v0.3.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling snow v0.7.2
[INFO] [stderr]    Compiling prost-build v0.6.1
[INFO] [stderr]     Checking multihash v0.11.4
[INFO] [stderr]     Checking poly1305 v0.6.1
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking aes v0.5.0
[INFO] [stderr]     Checking ghash v0.3.0
[INFO] [stderr]     Checking base-x v0.2.8
[INFO] [stderr]     Checking blake2 v0.9.1
[INFO] [stderr]     Checking rustc-hex v2.1.0
[INFO] [stderr]     Checking byteorder v0.5.3
[INFO] [stderr]     Checking c_linked_list v1.1.1
[INFO] [stderr]     Checking aes-gcm v0.7.0
[INFO] [stderr]    Compiling ring v0.16.19
[INFO] [stderr]     Checking unsigned-varint v0.3.3
[INFO] [stderr]     Checking pin-project-lite v0.2.0
[INFO] [stderr]     Checking dns-parser v0.8.0
[INFO] [stderr]     Checking get_if_addrs v0.5.3
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking uint v0.8.5
[INFO] [stderr]     Checking socket2 v0.3.17
[INFO] [stderr]    Compiling serde_json v1.0.60
[INFO] [stderr]     Checking tracing v0.1.22
[INFO] [stderr]     Checking dirs-sys v0.3.5
[INFO] [stderr]     Checking filetime v0.2.13
[INFO] [stderr]     Checking quick-protobuf v0.7.0
[INFO] [stderr]     Checking atomic v0.4.6
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking cuckoofilter v0.3.2
[INFO] [stderr]     Checking itoa v0.4.6
[INFO] [stderr]     Checking dirs v3.0.1
[INFO] [stderr]     Checking base64 v0.12.3
[INFO] [stderr]     Checking libsecp256k1 v0.3.5
[INFO] [stderr]     Checking domain v0.5.3
[INFO] [stderr]    Compiling tempfile v3.1.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling prost-derive v0.6.1
[INFO] [stderr]    Compiling pin-project-internal v1.0.2
[INFO] [stderr]    Compiling futures-macro v0.3.8
[INFO] [stderr]    Compiling zeroize_derive v1.0.1
[INFO] [stderr]    Compiling pin-project-internal v0.4.27
[INFO] [stderr]    Compiling thiserror-impl v1.0.22
[INFO] [stderr]    Compiling asn1_der_derive v0.1.2
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.9
[INFO] [stderr]    Compiling async-stream-impl v0.3.0
[INFO] [stderr]    Compiling libp2p-core-derive v0.20.2
[INFO] [stderr]    Compiling async-trait v0.1.42
[INFO] [stderr]     Checking asn1_der v0.6.3
[INFO] [stderr]     Checking data-encoding-macro v0.1.10
[INFO] [stderr]     Checking zeroize v1.1.1
[INFO] [stderr]     Checking multibase v0.8.0
[INFO] [stderr]     Checking cid v0.5.1
[INFO] [stderr]     Checking async-stream v0.3.0
[INFO] [stderr]     Checking tokio v0.2.23
[INFO] [stderr]     Checking ipfs-unixfs v0.2.0
[INFO] [stderr]     Checking curve25519-dalek v3.0.0
[INFO] [stderr]     Checking chacha20 v0.5.0
[INFO] [stderr]     Checking curve25519-dalek v2.1.0
[INFO] [stderr]     Checking pin-project v1.0.2
[INFO] [stderr]     Checking futures-util v0.3.8
[INFO] [stderr]     Checking chacha20poly1305 v0.6.0
[INFO] [stderr]     Checking thiserror v1.0.22
[INFO] [stderr]     Checking pin-project v0.4.27
[INFO] [stderr]    Compiling prost v0.6.1
[INFO] [stderr]     Checking x25519-dalek v1.1.0
[INFO] [stderr]     Checking x25519-dalek v0.6.0
[INFO] [stderr]    Compiling prost-types v0.6.1
[INFO] [stderr]     Checking futures-executor v0.3.8
[INFO] [stderr]     Checking futures v0.3.8
[INFO] [stderr]     Checking futures_codec v0.4.1
[INFO] [stderr]     Checking multistream-select v0.8.5
[INFO] [stderr]     Checking rw-stream-sink v0.2.1
[INFO] [stderr]     Checking wasm-timer v0.2.5
[INFO] [stderr]     Checking yamux v0.8.0
[INFO] [stderr]     Checking tracing-futures v0.2.4
[INFO] [stderr]     Checking unsigned-varint v0.4.0
[INFO] [stderr]    Compiling libp2p-core v0.22.1
[INFO] [stderr]    Compiling libp2p-identify v0.22.0
[INFO] [stderr]    Compiling libp2p-noise v0.24.0
[INFO] [stderr]    Compiling libp2p-kad v0.23.0
[INFO] [stderr]    Compiling libp2p-floodsub v0.22.0
[INFO] [stderr]    Compiling ipfs-bitswap v0.1.0
[INFO] [stderr]    Compiling ipfs v0.2.1
[INFO] [stderr]     Checking domain-resolv v0.5.1
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking parity-multiaddr v0.9.6
[INFO] [stderr]     Checking libp2p-swarm v0.22.0
[INFO] [stderr]     Checking libp2p-tcp v0.22.0
[INFO] [stderr]     Checking libp2p-dns v0.22.0
[INFO] [stderr]     Checking libp2p-mplex v0.22.0
[INFO] [stderr]     Checking libp2p-yamux v0.25.0
[INFO] [stderr]     Checking libp2p-ping v0.22.0
[INFO] [stderr]     Checking libp2p-mdns v0.22.0
[INFO] [stderr]     Checking libp2p v0.28.1
[INFO] [stderr]     Checking ipfs-client v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.76s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: snow v0.7.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr] crater-edition-check: ipfs-client v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling libc v0.2.80
[INFO] [stderr]    Compiling anyhow v1.0.34
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]     Checking sha2 v0.9.2
[INFO] [stderr]     Checking blake2b_simd v0.5.11
[INFO] [stderr]     Checking tokio v0.2.23
[INFO] [stderr]    Compiling snow v0.7.2
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]    Compiling getrandom v0.1.15
[INFO] [stderr]    Compiling which v3.1.1
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling prost-build v0.6.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]     Checking multihash v0.11.4
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling prost-derive v0.6.1
[INFO] [stderr]     Checking parity-multiaddr v0.9.6
[INFO] [stderr]     Checking cid v0.5.1
[INFO] [stderr]     Checking ipfs-unixfs v0.2.0
[INFO] [stderr]    Compiling tempfile v3.1.0
[INFO] [stderr]    Compiling prost v0.6.1
[INFO] [stderr]    Compiling prost-types v0.6.1
[INFO] [stderr]     Checking domain-resolv v0.5.1
[INFO] [stderr]    Compiling libp2p-core v0.22.1
[INFO] [stderr]    Compiling libp2p-noise v0.24.0
[INFO] [stderr]    Compiling libp2p-identify v0.22.0
[INFO] [stderr]    Compiling libp2p-floodsub v0.22.0
[INFO] [stderr]    Compiling libp2p-kad v0.23.0
[INFO] [stderr]    Compiling ipfs-bitswap v0.1.0
[INFO] [stderr]    Compiling ipfs v0.2.1
[INFO] [stderr]     Checking libp2p-swarm v0.22.0
[INFO] [stderr]     Checking libp2p-mplex v0.22.0
[INFO] [stderr]     Checking libp2p-tcp v0.22.0
[INFO] [stderr]     Checking libp2p-dns v0.22.0
[INFO] [stderr]     Checking libp2p-yamux v0.25.0
[INFO] [stderr]     Checking libp2p-ping v0.22.0
[INFO] [stderr]     Checking libp2p-mdns v0.22.0
[INFO] [stderr]     Checking libp2p v0.28.1
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/dag.rs:173:46
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let bytes = encode_ipld(&data, codec)?;
[INFO] [stdout]     |                     -------------------------^ the trait `From<BlockError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, BlockError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `BlockError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipld/mod.rs:213:1
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum BlockError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/dag.rs:180:49
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let cid = Cid::new(version, codec, hash)?;
[INFO] [stdout]     |                   ------------------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: Into<Box<dyn StdError + std::marker::Send + Sync>>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/dag.rs:295:91
[INFO] [stdout]     |
[INFO] [stdout] 295 |                     Err(e) => return Err(RawResolveLocalError::UnsupportedDocument(src, e.into())),
[INFO] [stdout]     |                                                                                           ^^^^ the trait `StdError` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `Box<dyn StdError + std::marker::Send + Sync>` to implement `From<anyhow::Error>`
[INFO] [stdout]     = note: required for `anyhow::Error` to implement `Into<Box<dyn StdError + std::marker::Send + Sync>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/dag.rs:327:60
[INFO] [stdout]     |
[INFO] [stdout] 327 |             match lookup.continue_walk(block.data(), cache)? {
[INFO] [stdout]     |                          ----------------------------------^ the trait `From<LookupError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, LookupError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:103:50
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let qname = Dname::<Bytes>::from_str(&domain)?;
[INFO] [stdout]     |                 ---------------------------------^ the trait `From<domain::base::name::FromStrError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this can't be annotated with `?` because it has type `Result<_, domain::base::name::FromStrError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:108:51
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let qname = Dname::<Bytes>::from_str(&dnslink)?;
[INFO] [stdout]     |                 ----------------------------------^ the trait `From<domain::base::name::FromStrError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this can't be annotated with `?` because it has type `Result<_, domain::base::name::FromStrError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mod.rs:337:34
[INFO] [stdout]     |
[INFO] [stdout] 337 |             Ok(subscription.await?)
[INFO] [stdout]     |                ------------------^ the trait `From<SubscriptionErr<std::string::String>>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, SubscriptionErr<std::string::String>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `SubscriptionErr<std::string::String>` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/subscription.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub enum SubscriptionErr<E: Debug + PartialEq> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:65:87
[INFO] [stdout]    |
[INFO] [stdout] 65 |             std::fs::create_dir_all(path.parent().expect("shard parent has to exist"))?;
[INFO] [stdout]    |             --------------------------------------------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:72:48
[INFO] [stdout]    |
[INFO] [stdout] 72 |             let f = std::fs::File::create(path)?;
[INFO] [stdout]    |                     ---------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:73:25
[INFO] [stdout]    |
[INFO] [stdout] 73 |             f.sync_all()?;
[INFO] [stdout]    |               ----------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |               |
[INFO] [stdout]    |               this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 60 | /         tokio::task::spawn_blocking(move || {
[INFO] [stdout] 61 | |             // move the permit to the blocking thread to ensure we keep it as long as needed
[INFO] [stdout] 62 | |             let _permit = permit;
[INFO] [stdout] 63 | |             let _entered = span.enter();
[INFO] [stdout] ...  |
[INFO] [stdout] 75 | |         })
[INFO] [stdout] 76 | |         .await??;
[INFO] [stdout]    | |              -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    | |______________|
[INFO] [stdout]    |                this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:88:19
[INFO] [stdout]    |
[INFO] [stdout] 86 |           let set = referenced
[INFO] [stdout]    |  ___________________-
[INFO] [stdout] 87 | |             .try_collect::<std::collections::BTreeSet<_>>()
[INFO] [stdout] 88 | |             .await?;
[INFO] [stdout]    | |                  -^ the trait `From<IpldRefsError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    | |__________________|
[INFO] [stdout]    |                    this can't be annotated with `?` because it has type `Result<_, IpldRefsError>`
[INFO] [stdout]    |
[INFO] [stdout] note: `IpldRefsError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/refs.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum IpldRefsError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:111:55
[INFO] [stdout]     |
[INFO] [stdout] 111 |                     std::fs::rename(&path, final_path)?
[INFO] [stdout]     |                     ----------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:106:52
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let file = std::fs::File::create(&path)?;
[INFO] [stdout]     |                        ----------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:100:87
[INFO] [stdout]     |
[INFO] [stdout] 100 |             std::fs::create_dir_all(path.parent().expect("shard parent has to exist"))?;
[INFO] [stdout]     |             --------------------------------------------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:143:15
[INFO] [stdout]     |
[INFO] [stdout]  96 | /         tokio::task::spawn_blocking(move || {
[INFO] [stdout]  97 | |             let _permit = permit; // again move to the threadpool thread
[INFO] [stdout]  98 | |             let _entered = span.enter();
[INFO] [stdout] ...   |
[INFO] [stdout] 142 | |         })
[INFO] [stdout] 143 | |         .await??;
[INFO] [stdout]     | |              -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________|
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<std::io::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 Err(e) => Err(e.into()),
[INFO] [stdout]     |                                 ^^^^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `std::io::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:178:15
[INFO] [stdout]     |
[INFO] [stdout] 155 | /         tokio::task::spawn_blocking(move || {
[INFO] [stdout] 156 | |             let _permit = permit; // move in to threadpool thread
[INFO] [stdout] 157 | |             let _entered = span.enter();
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |         })
[INFO] [stdout] 178 | |         .await??;
[INFO] [stdout]     | |              -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________|
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `anyhow::Error` in the current scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:208:45
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 Err(e) => return Err(Error::new(e)),
[INFO] [stdout]     |                                             ^^^ associated function or constant not found in `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `anyhow::Error`, consider using `anyhow::error::<impl anyhow::Error>::msg` which returns `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/error.rs:68:5
[INFO] [stdout]     |
[INFO] [stdout]  68 | /     pub fn msg<M>(message: M) -> Self
[INFO] [stdout]  69 | |     where
[INFO] [stdout]  70 | |         M: Display + Debug + Send + Sync + 'static,
[INFO] [stdout]     | |___________________________________________________^
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `BlockStore`
[INFO] [stdout]             candidate #2: `DataStore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:231:15
[INFO] [stdout]     |
[INFO] [stdout] 190 | /         tokio::task::spawn_blocking(move || {
[INFO] [stdout] 191 | |             let _permit = permit; // move into threadpool thread
[INFO] [stdout] 192 | |             let _entered = span.enter();
[INFO] [stdout] ...   |
[INFO] [stdout] 230 | |         })
[INFO] [stdout] 231 | |         .await??;
[INFO] [stdout]     | |              -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________|
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `anyhow::Error` in the current scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:457:29
[INFO] [stdout]     |
[INFO] [stdout] 457 |             .map_err(Error::new)
[INFO] [stdout]     |                             ^^^ associated function or constant not found in `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `BlockStore`
[INFO] [stdout]             candidate #2: `DataStore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<std::io::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:496:32
[INFO] [stdout]     |
[INFO] [stdout] 496 |         Err(e) => return Err(e.into()),
[INFO] [stdout]     |                                ^^^^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `std::io::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:499:60
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let cids: Vec<&str> = serde_json::from_slice(&contents)?;
[INFO] [stdout]     |                           ---------------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:506:42
[INFO] [stdout]     |
[INFO] [stdout] 506 |         .collect::<Result<Vec<Cid>, _>>()?;
[INFO] [stdout]     |          --------------------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:377:19
[INFO] [stdout]     |
[INFO] [stdout] 344 | /             tokio::task::spawn_blocking(move || {
[INFO] [stdout] 345 | |                 for (i, cid) in ids.into_iter().enumerate() {
[INFO] [stdout] 346 | |                     let mut path = pin_path(base.clone(), &cid);
[INFO] [stdout] ...   |
[INFO] [stdout] 376 | |             })
[INFO] [stdout] 377 | |             .await??
[INFO] [stdout]     | |                  -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |__________________|
[INFO] [stdout]     |                    this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:513:98
[INFO] [stdout]     |
[INFO] [stdout] 513 |     tokio::task::spawn_blocking(move || Ok(sync_read_direct_or_recursive(&mut block_path))).await?
[INFO] [stdout]     |     ---------------------------------------------------------------------------------------------^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:117:52
[INFO] [stdout]     |
[INFO] [stdout] 117 |         fs::create_dir_all(self.path.clone()).await?;
[INFO] [stdout]     |         -------------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<std::io::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:135:36
[INFO] [stdout]     |
[INFO] [stdout] 135 |             Err(e) => return Err(e.into()),
[INFO] [stdout]     |                                    ^^^^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `std::io::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<std::io::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:160:38
[INFO] [stdout]     |
[INFO] [stdout] 160 |                         return Err(e.into());
[INFO] [stdout]     |                                      ^^^^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `std::io::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 155 | /             tokio::task::spawn_blocking(move || {
[INFO] [stdout] 156 | |                 let mut file = match std::fs::File::open(path) {
[INFO] [stdout] 157 | |                     Ok(file) => file,
[INFO] [stdout] 158 | |                     Err(e) if e.kind() == std::io::ErrorKind::NotFound => return Ok(None),
[INFO] [stdout] ...   |
[INFO] [stdout] 170 | |             })
[INFO] [stdout] 171 | |             .await?
[INFO] [stdout]     | |                  -^ the trait `From<JoinError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |__________________|
[INFO] [stdout]     |                    this can't be annotated with `?` because it has type `Result<_, JoinError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:164:42
[INFO] [stdout]     |
[INFO] [stdout] 164 |                 let len = file.metadata()?.len();
[INFO] [stdout]     |                                ----------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:167:44
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 file.read_to_end(&mut data)?;
[INFO] [stdout]     |                      ----------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `anyhow::Error` in the current scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:285:32
[INFO] [stdout]     |
[INFO] [stdout] 285 |                     Err(Error::new(e))
[INFO] [stdout]     |                                ^^^ associated function or constant not found in `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `anyhow::Error`, consider using `anyhow::error::<impl anyhow::Error>::msg` which returns `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/error.rs:68:5
[INFO] [stdout]     |
[INFO] [stdout]  68 | /     pub fn msg<M>(message: M) -> Self
[INFO] [stdout]  69 | |     where
[INFO] [stdout]  70 | |         M: Display + Debug + Send + Sync + 'static,
[INFO] [stdout]     | |___________________________________________________^
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `BlockStore`
[INFO] [stdout]             candidate #2: `DataStore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<std::io::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:351:37
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     Err(e) => Err(e.into()),
[INFO] [stdout]     |                                     ^^^^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `std::io::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:364:63
[INFO] [stdout]     |
[INFO] [stdout] 364 |             let stream = fs::read_dir(self.path.clone()).await?;
[INFO] [stdout]     |                          -------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/blocks.rs:391:23
[INFO] [stdout]     |
[INFO] [stdout] 367 |               let vec = stream
[INFO] [stdout]     |  _______________________-
[INFO] [stdout] 368 | |                 .and_then(|d| async move {
[INFO] [stdout] 369 | |                     // map over the shard directories
[INFO] [stdout] 370 | |                     Ok(if d.file_type().await?.is_dir() {
[INFO] [stdout] ...   |
[INFO] [stdout] 390 | |                 .try_collect::<Vec<_>>()
[INFO] [stdout] 391 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs.rs:62:52
[INFO] [stdout]    |
[INFO] [stdout] 62 |         tokio::fs::create_dir_all(&self.path).await?;
[INFO] [stdout]    |         -------------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |         |
[INFO] [stdout]    |         this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:232:53
[INFO] [stdout]     |
[INFO] [stdout] 232 |         while let Some(next) = refs.try_next().await? {
[INFO] [stdout]     |                                ---------------------^ the trait `From<IpldRefsError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this can't be annotated with `?` because it has type `Result<_, IpldRefsError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `IpldRefsError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/refs.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | pub enum IpldRefsError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<serde_json::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:256:40
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 Err(e) => return Err(e.into()),
[INFO] [stdout]     |                                        ^^^^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `serde_json::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:287:53
[INFO] [stdout]     |
[INFO] [stdout] 287 |         while let Some(next) = refs.try_next().await? {
[INFO] [stdout]     |                                ---------------------^ the trait `From<IpldRefsError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this can't be annotated with `?` because it has type `Result<_, IpldRefsError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `IpldRefsError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/refs.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | pub enum IpldRefsError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:306:56
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 let cid = Cid::try_from(key.as_slice())?;
[INFO] [stdout]     |                           -----------------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:307:69
[INFO] [stdout]     |
[INFO] [stdout] 307 |                 let doc: PinDocument = serde_json::from_slice(value)?;
[INFO] [stdout]     |                                        -----------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `anyhow::Error` in the current scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:347:73
[INFO] [stdout]     |
[INFO] [stdout] 347 | ...                   Some(Err(invalid_cid)) => return Err(Error::new(invalid_cid)),
[INFO] [stdout]     |                                                                   ^^^ associated function or constant not found in `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `anyhow::Error`, consider using `anyhow::error::<impl anyhow::Error>::msg` which returns `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/error.rs:68:5
[INFO] [stdout]     |
[INFO] [stdout]  68 | /     pub fn msg<M>(message: M) -> Self
[INFO] [stdout]  69 | |     where
[INFO] [stdout]  70 | |         M: Display + Debug + Send + Sync + 'static,
[INFO] [stdout]     | |___________________________________________________^
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `BlockStore`
[INFO] [stdout]             candidate #2: `DataStore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<serde_json::Error>` is not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:341:52
[INFO] [stdout]     |
[INFO] [stdout] 341 | ...                   Err(e) => return Err(e.into()),
[INFO] [stdout]     |                                              ^^^^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `serde_json::Error` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mod.rs:311:39
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 kad_subscription.await?;
[INFO] [stdout]     |                 ----------------------^ the trait `From<SubscriptionErr<std::string::String>>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this can't be annotated with `?` because it has type `Result<_, SubscriptionErr<std::string::String>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `SubscriptionErr<std::string::String>` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/subscription.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub enum SubscriptionErr<E: Debug + PartialEq> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:364:72
[INFO] [stdout]     |
[INFO] [stdout] 364 |         let swarm = create_swarm(swarm_options, swarm_span, repo).await?;
[INFO] [stdout]     |                     ---------------------------------------------------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:453:65
[INFO] [stdout]     |
[INFO] [stdout] 453 |                 let ipld = crate::ipld::decode_ipld(&cid, &data)?;
[INFO] [stdout]     |                            -------------------------------------^ the trait `From<BlockError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this can't be annotated with `?` because it has type `Result<_, BlockError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `BlockError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipld/mod.rs:213:1
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum BlockError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:492:65
[INFO] [stdout]     |
[INFO] [stdout] 492 |                 let ipld = crate::ipld::decode_ipld(&cid, &data)?;
[INFO] [stdout]     |                            -------------------------------------^ the trait `From<BlockError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this can't be annotated with `?` because it has type `Result<_, BlockError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `BlockError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipld/mod.rs:213:1
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum BlockError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `new` found for struct `anyhow::Error` in the current scope
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:579:29
[INFO] [stdout]     |
[INFO] [stdout] 579 |             .map_err(Error::new)
[INFO] [stdout]     |                             ^^^ associated function or constant not found in `anyhow::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `new`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `BlockStore`
[INFO] [stdout]             candidate #2: `DataStore`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:638:23
[INFO] [stdout]     |
[INFO] [stdout] 635 | /             self.to_task
[INFO] [stdout] 636 | |                 .clone()
[INFO] [stdout] 637 | |                 .send(IpfsEvent::Connect(target, tx))
[INFO] [stdout] 638 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:639:40
[INFO] [stdout]     |
[INFO] [stdout] 639 |             let subscription = rx.await?;
[INFO] [stdout]     |                                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:655:70
[INFO] [stdout]     |
[INFO] [stdout] 655 |             self.to_task.clone().send(IpfsEvent::Addresses(tx)).await?;
[INFO] [stdout]     |             ---------------------------------------------------------^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:656:21
[INFO] [stdout]     |
[INFO] [stdout] 656 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:666:70
[INFO] [stdout]     |
[INFO] [stdout] 666 |             self.to_task.clone().send(IpfsEvent::Listeners(tx)).await?;
[INFO] [stdout]     |             ---------------------------------------------------------^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:667:21
[INFO] [stdout]     |
[INFO] [stdout] 667 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:680:23
[INFO] [stdout]     |
[INFO] [stdout] 677 | /             self.to_task
[INFO] [stdout] 678 | |                 .clone()
[INFO] [stdout] 679 | |                 .send(IpfsEvent::Connections(tx))
[INFO] [stdout] 680 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:681:21
[INFO] [stdout]     |
[INFO] [stdout] 681 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:697:23
[INFO] [stdout]     |
[INFO] [stdout] 694 | /             self.to_task
[INFO] [stdout] 695 | |                 .clone()
[INFO] [stdout] 696 | |                 .send(IpfsEvent::Disconnect(target, tx))
[INFO] [stdout] 697 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:698:21
[INFO] [stdout]     |
[INFO] [stdout] 698 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:715:23
[INFO] [stdout]     |
[INFO] [stdout] 712 | /             self.to_task
[INFO] [stdout] 713 | |                 .clone()
[INFO] [stdout] 714 | |                 .send(IpfsEvent::GetAddresses(tx))
[INFO] [stdout] 715 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:716:41
[INFO] [stdout]     |
[INFO] [stdout] 716 |             let mut addresses = rx.await?;
[INFO] [stdout]     |                                 --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:740:23
[INFO] [stdout]     |
[INFO] [stdout] 737 | /             self.to_task
[INFO] [stdout] 738 | |                 .clone()
[INFO] [stdout] 739 | |                 .send(IpfsEvent::PubsubSubscribe(topic.clone(), tx))
[INFO] [stdout] 740 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:742:21
[INFO] [stdout]     |
[INFO] [stdout] 742 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:757:23
[INFO] [stdout]     |
[INFO] [stdout] 754 | /             self.to_task
[INFO] [stdout] 755 | |                 .clone()
[INFO] [stdout] 756 | |                 .send(IpfsEvent::PubsubPublish(topic, data, tx))
[INFO] [stdout] 757 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:759:24
[INFO] [stdout]     |
[INFO] [stdout] 759 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:776:23
[INFO] [stdout]     |
[INFO] [stdout] 773 | /             self.to_task
[INFO] [stdout] 774 | |                 .clone()
[INFO] [stdout] 775 | |                 .send(IpfsEvent::PubsubUnsubscribe(topic.into(), tx))
[INFO] [stdout] 776 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:778:24
[INFO] [stdout]     |
[INFO] [stdout] 778 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:792:23
[INFO] [stdout]     |
[INFO] [stdout] 789 | /             self.to_task
[INFO] [stdout] 790 | |                 .clone()
[INFO] [stdout] 791 | |                 .send(IpfsEvent::PubsubPeers(topic, tx))
[INFO] [stdout] 792 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:794:24
[INFO] [stdout]     |
[INFO] [stdout] 794 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:808:23
[INFO] [stdout]     |
[INFO] [stdout] 805 | /             self.to_task
[INFO] [stdout] 806 | |                 .clone()
[INFO] [stdout] 807 | |                 .send(IpfsEvent::PubsubSubscribed(tx))
[INFO] [stdout] 808 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:810:24
[INFO] [stdout]     |
[INFO] [stdout] 810 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:827:23
[INFO] [stdout]     |
[INFO] [stdout] 824 | /             self.to_task
[INFO] [stdout] 825 | |                 .clone()
[INFO] [stdout] 826 | |                 .send(IpfsEvent::WantList(peer, tx))
[INFO] [stdout] 827 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:829:24
[INFO] [stdout]     |
[INFO] [stdout] 829 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:851:23
[INFO] [stdout]     |
[INFO] [stdout] 848 | /             self.to_task
[INFO] [stdout] 849 | |                 .clone()
[INFO] [stdout] 850 | |                 .send(IpfsEvent::BitswapStats(tx))
[INFO] [stdout] 851 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:853:24
[INFO] [stdout]     |
[INFO] [stdout] 853 |             Ok(rx.await?)
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:879:23
[INFO] [stdout]     |
[INFO] [stdout] 876 | /             self.to_task
[INFO] [stdout] 877 | |                 .clone()
[INFO] [stdout] 878 | |                 .send(IpfsEvent::AddListeningAddress(addr, tx))
[INFO] [stdout] 879 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:881:21
[INFO] [stdout]     |
[INFO] [stdout] 881 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:898:23
[INFO] [stdout]     |
[INFO] [stdout] 895 | /             self.to_task
[INFO] [stdout] 896 | |                 .clone()
[INFO] [stdout] 897 | |                 .send(IpfsEvent::RemoveListeningAddress(addr, tx))
[INFO] [stdout] 898 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:900:21
[INFO] [stdout]     |
[INFO] [stdout] 900 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:932:35
[INFO] [stdout]     |
[INFO] [stdout] 932 |                     match rx.await? {
[INFO] [stdout]     |                           --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:930:31
[INFO] [stdout]     |
[INFO] [stdout] 927 | /                     self.to_task
[INFO] [stdout] 928 | |                         .clone()
[INFO] [stdout] 929 | |                         .send(IpfsEvent::FindPeer(peer_id.clone(), true, tx))
[INFO] [stdout] 930 | |                         .await?;
[INFO] [stdout]     | |                              -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________________|
[INFO] [stdout]     |                                this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:923:33
[INFO] [stdout]     |
[INFO] [stdout] 923 |                     future.await?;
[INFO] [stdout]     |                     ------------^ the trait `From<SubscriptionErr<std::string::String>>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, SubscriptionErr<std::string::String>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `SubscriptionErr<std::string::String>` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/subscription.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub enum SubscriptionErr<E: Debug + PartialEq> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:919:27
[INFO] [stdout]     |
[INFO] [stdout] 919 |             match rx.await? {
[INFO] [stdout]     |                   --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:917:23
[INFO] [stdout]     |
[INFO] [stdout] 914 | /             self.to_task
[INFO] [stdout] 915 | |                 .clone()
[INFO] [stdout] 916 | |                 .send(IpfsEvent::FindPeer(peer_id.clone(), false, tx))
[INFO] [stdout] 917 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:953:23
[INFO] [stdout]     |
[INFO] [stdout] 950 | /             self.to_task
[INFO] [stdout] 951 | |                 .clone()
[INFO] [stdout] 952 | |                 .send(IpfsEvent::GetProviders(cid, tx))
[INFO] [stdout] 953 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:955:24
[INFO] [stdout]     |
[INFO] [stdout] 955 |             Ok(rx.await?).map_err(|e: String| anyhow!(e))
[INFO] [stdout]     |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:987:23
[INFO] [stdout]     |
[INFO] [stdout] 984 | /             self.to_task
[INFO] [stdout] 985 | |                 .clone()
[INFO] [stdout] 986 | |                 .send(IpfsEvent::Provide(cid, tx))
[INFO] [stdout] 987 | |                 .await?;
[INFO] [stdout]     | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     | |______________________|
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:989:21
[INFO] [stdout]     |
[INFO] [stdout] 989 |             rx.await?
[INFO] [stdout]     |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1012:23
[INFO] [stdout]      |
[INFO] [stdout] 1009 | /             self.to_task
[INFO] [stdout] 1010 | |                 .clone()
[INFO] [stdout] 1011 | |                 .send(IpfsEvent::GetClosestPeers(peer_id, tx))
[INFO] [stdout] 1012 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1014:24
[INFO] [stdout]      |
[INFO] [stdout] 1014 |             Ok(rx.await?).map_err(|e: String| anyhow!(e))
[INFO] [stdout]      |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1040:23
[INFO] [stdout]      |
[INFO] [stdout] 1037 | /             self.to_task
[INFO] [stdout] 1038 | |                 .clone()
[INFO] [stdout] 1039 | |                 .send(IpfsEvent::DhtGet(key.into(), quorum, tx))
[INFO] [stdout] 1040 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1042:24
[INFO] [stdout]      |
[INFO] [stdout] 1042 |             Ok(rx.await?).map_err(|e: String| anyhow!(e))
[INFO] [stdout]      |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1073:23
[INFO] [stdout]      |
[INFO] [stdout] 1070 | /             self.to_task
[INFO] [stdout] 1071 | |                 .clone()
[INFO] [stdout] 1072 | |                 .send(IpfsEvent::DhtPut(key.into(), value, quorum, tx))
[INFO] [stdout] 1073 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1075:24
[INFO] [stdout]      |
[INFO] [stdout] 1075 |             Ok(rx.await?).map_err(|e: String| anyhow!(e))
[INFO] [stdout]      |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1112:23
[INFO] [stdout]      |
[INFO] [stdout] 1109 | /             self.to_task
[INFO] [stdout] 1110 | |                 .clone()
[INFO] [stdout] 1111 | |                 .send(IpfsEvent::GetBootstrappers(tx))
[INFO] [stdout] 1112 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1114:24
[INFO] [stdout]      |
[INFO] [stdout] 1114 |             Ok(rx.await?)
[INFO] [stdout]      |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1130:23
[INFO] [stdout]      |
[INFO] [stdout] 1127 | /             self.to_task
[INFO] [stdout] 1128 | |                 .clone()
[INFO] [stdout] 1129 | |                 .send(IpfsEvent::AddBootstrapper(addr, tx))
[INFO] [stdout] 1130 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1132:21
[INFO] [stdout]      |
[INFO] [stdout] 1132 |             rx.await?
[INFO] [stdout]      |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1148:23
[INFO] [stdout]      |
[INFO] [stdout] 1145 | /             self.to_task
[INFO] [stdout] 1146 | |                 .clone()
[INFO] [stdout] 1147 | |                 .send(IpfsEvent::RemoveBootstrapper(addr, tx))
[INFO] [stdout] 1148 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1150:21
[INFO] [stdout]      |
[INFO] [stdout] 1150 |             rx.await?
[INFO] [stdout]      |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1164:23
[INFO] [stdout]      |
[INFO] [stdout] 1161 | /             self.to_task
[INFO] [stdout] 1162 | |                 .clone()
[INFO] [stdout] 1163 | |                 .send(IpfsEvent::ClearBootstrappers(tx))
[INFO] [stdout] 1164 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1166:24
[INFO] [stdout]      |
[INFO] [stdout] 1166 |             Ok(rx.await?)
[INFO] [stdout]      |                --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |                |
[INFO] [stdout]      |                this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1181:23
[INFO] [stdout]      |
[INFO] [stdout] 1178 | /             self.to_task
[INFO] [stdout] 1179 | |                 .clone()
[INFO] [stdout] 1180 | |                 .send(IpfsEvent::RestoreBootstrappers(tx))
[INFO] [stdout] 1181 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1183:21
[INFO] [stdout]      |
[INFO] [stdout] 1183 |             rx.await?
[INFO] [stdout]      |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1675:70
[INFO] [stdout]      |
[INFO] [stdout] 1675 |             self.to_task.clone().send(IpfsEvent::Bootstrap(tx)).await?;
[INFO] [stdout]      |             ---------------------------------------------------------^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1677:21
[INFO] [stdout]      |
[INFO] [stdout] 1677 |             rx.await??.await.map_err(|e| anyhow!(e))
[INFO] [stdout]      |             --------^ the trait `From<Canceled>` is not implemented for `anyhow::Error`
[INFO] [stdout]      |             |
[INFO] [stdout]      |             this can't be annotated with `?` because it has type `Result<_, Canceled>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1692:23
[INFO] [stdout]      |
[INFO] [stdout] 1689 | /             self.to_task
[INFO] [stdout] 1690 | |                 .clone()
[INFO] [stdout] 1691 | |                 .send(IpfsEvent::AddPeer(peer_id, addr))
[INFO] [stdout] 1692 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1703:23
[INFO] [stdout]      |
[INFO] [stdout] 1700 | /             self.to_task
[INFO] [stdout] 1701 | |                 .clone()
[INFO] [stdout] 1702 | |                 .send(IpfsEvent::GetBitswapPeers(tx))
[INFO] [stdout] 1703 | |                 .await?;
[INFO] [stdout]      | |                      -^ the trait `From<futures::channel::mpsc::SendError>` is not implemented for `anyhow::Error`
[INFO] [stdout]      | |______________________|
[INFO] [stdout]      |                        this can't be annotated with `?` because it has type `Result<_, futures::channel::mpsc::SendError>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&anyhow::Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/dag.rs:22:13
[INFO] [stdout]     |
[INFO] [stdout]  22 |     #[error("block loading failed")]
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ method cannot be called on `&anyhow::Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/lib.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct Error {
[INFO] [stdout]     | ---------------- doesn't satisfy `anyhow::Error: StdError` or `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `anyhow::Error: StdError`
[INFO] [stdout]             which is required by `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]             `&anyhow::Error: StdError`
[INFO] [stdout]             which is required by `&anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:43:50
[INFO] [stdout]    |
[INFO] [stdout] 43 |                     for record in answer.answer()?.limit_to::<Txt<_>>() {
[INFO] [stdout]    |                                          --------^ the trait `From<domain::base::octets::ParseError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          this can't be annotated with `?` because it has type `Result<_, domain::base::octets::ParseError>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the following other types implement trait `FromResidual<R>`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/task/poll.rs:254:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Poll<Result<T, F>>`
[INFO] [stdout]   ::: /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/task/poll.rs:286:34
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Poll<std::option::Option<Result<T, F>>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:44:41
[INFO] [stdout]    |
[INFO] [stdout] 44 |                         let txt = record?;
[INFO] [stdout]    |                                   ------^ the trait `From<domain::base::octets::ParseError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   this can't be annotated with `?` because it has type `Result<_, domain::base::octets::ParseError>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the following other types implement trait `FromResidual<R>`
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/task/poll.rs:254:0
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Poll<Result<T, F>>`
[INFO] [stdout]   ::: /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/task/poll.rs:286:34
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Poll<std::option::Option<Result<T, F>>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<DnsLinkError>` is not satisfied
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:56:77
[INFO] [stdout]    |
[INFO] [stdout] 56 | ...                   DnsLinkError("no DNS records found".to_owned()).into()
[INFO] [stdout]    |                                                                       ^^^^ the trait `From<DnsLinkError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: required for `DnsLinkError` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<DnsLinkError>` is not satisfied
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/ipns/dnslink.rs:61:91
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 Poll::Ready(Err(e)) => return Poll::Ready(Err(DnsLinkError(e.to_string()).into())),
[INFO] [stdout]    |                                                                                           ^^^^ the trait `From<DnsLinkError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: required for `DnsLinkError` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:51:48
[INFO] [stdout]    |
[INFO] [stdout] 51 |             PathRoot::Ipld(Cid::try_from(empty)?)
[INFO] [stdout]    |                            --------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:57:83
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 ("", Some("ipfs"), Some(key)) => PathRoot::Ipld(Cid::try_from(key)?),
[INFO] [stdout]    |                                                                 ------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                                                                 |
[INFO] [stdout]    |                                                                 this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:58:83
[INFO] [stdout]    |
[INFO] [stdout] 58 |                 ("", Some("ipld"), Some(key)) => PathRoot::Ipld(Cid::try_from(key)?),
[INFO] [stdout]    |                                                                 ------------------^ the trait `From<cid::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |                                                                 |
[INFO] [stdout]    |                                                                 this can't be annotated with `?` because it has type `Result<_, cid::Error>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `anyhow::Error: From<IpfsPathError>` is not satisfied
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:64:78
[INFO] [stdout]    |
[INFO] [stdout] 64 |                     return Err(IpfsPathError::InvalidPath(string.to_owned()).into());
[INFO] [stdout]    |                                                                              ^^^^ the trait `From<IpfsPathError>` is not implemented for `anyhow::Error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: required for `IpfsPathError` to implement `Into<anyhow::Error>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:72:72
[INFO] [stdout]     |
[INFO] [stdout]  71 |             .push_split(subpath)
[INFO] [stdout]     |              ------------------- this has type `Result<_, ()>`
[INFO] [stdout]  72 |             .map_err(|_| IpfsPathError::InvalidPath(string.to_owned()))?;
[INFO] [stdout]     |              ----------------------------------------------------------^ the trait `From<IpfsPathError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this can't be annotated with `?` because it has type `Result<_, IpfsPathError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `IpfsPathError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:321:1
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub enum IpfsPathError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:92:36
[INFO] [stdout]     |
[INFO] [stdout]  92 |         self.path.push_path(string)?;
[INFO] [stdout]     |                   -----------------^ the trait `From<IpfsPathError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   this can't be annotated with `?` because it has type `Result<_, IpfsPathError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `IpfsPathError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/path.rs:321:1
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub enum IpfsPathError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&anyhow::Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/refs.rs:38:13
[INFO] [stdout]     |
[INFO] [stdout]  38 |     #[error("loading failed")]
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ method cannot be called on `&anyhow::Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/lib.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct Error {
[INFO] [stdout]     | ---------------- doesn't satisfy `anyhow::Error: StdError` or `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `anyhow::Error: StdError`
[INFO] [stdout]             which is required by `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]             `&anyhow::Error: StdError`
[INFO] [stdout]             which is required by `&anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:543:56
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 543 |     let mut seq = serializer.serialize_seq(Some(count))?;
[INFO] [stdout]     |                              --------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:545:36
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 545 |         seq.serialize_element(&cid)?;
[INFO] [stdout]     |             -----------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:547:14
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 547 |     seq.end()?;
[INFO] [stdout]     |         -----^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:550:19
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 550 |     writer.flush()?;
[INFO] [stdout]     |            -------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |            |
[INFO] [stdout]     |            this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:552:35
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 552 |     let file = writer.into_inner()?;
[INFO] [stdout]     |                       ------------^ the trait `From<IntoInnerError<std::io::BufWriter<std::fs::File>>>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this can't be annotated with `?` because it has type `Result<_, IntoInnerError<std::io::BufWriter<std::fs::File>>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/fs/pinstore.rs:553:20
[INFO] [stdout]     |
[INFO] [stdout] 536 | ) -> Result<(), Error> {
[INFO] [stdout]     |      ----------------- expected `anyhow::Error` because of this
[INFO] [stdout] ...
[INFO] [stdout] 553 |     file.sync_all()?;
[INFO] [stdout]     |          ----------^ the trait `From<std::io::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          this can't be annotated with `?` because it has type `Result<_, std::io::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:113:76
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let mut doc: PinDocument = serde_json::from_slice(oe.get())?;
[INFO] [stdout]     |                                            --------------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:114:42
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 if doc.update(true, kind)? {
[INFO] [stdout]     |                        ------------------^ the trait `From<PinUpdateError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this can't be annotated with `?` because it has type `Result<_, PinUpdateError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `PinUpdateError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:636:1
[INFO] [stdout]     |
[INFO] [stdout] 636 | pub enum PinUpdateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:117:53
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     serde_json::to_writer(vec, &doc)?;
[INFO] [stdout]     |                     --------------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:138:51
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 let vec = serde_json::to_vec(&doc)?;
[INFO] [stdout]     |                           ------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |                 let mut doc: PinDocument = serde_json::from_slice(oe.get())?;
[INFO] [stdout]     |                                            --------------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:158:44
[INFO] [stdout]     |
[INFO] [stdout] 158 |                 if !doc.update(false, kind)? {
[INFO] [stdout]     |                         -------------------^ the trait `From<PinUpdateError>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this can't be annotated with `?` because it has type `Result<_, PinUpdateError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `PinUpdateError` needs to implement `Into<anyhow::Error>`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:636:1
[INFO] [stdout]     |
[INFO] [stdout] 636 | pub enum PinUpdateError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `anyhow::Error`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/repo/mem.rs:168:53
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     serde_json::to_writer(vec, &doc)?;
[INFO] [stdout]     |                     --------------------------------^ the trait `From<serde_json::Error>` is not implemented for `anyhow::Error`
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this can't be annotated with `?` because it has type `Result<_, serde_json::Error>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&anyhow::Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/unixfs/cat.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |     #[error("loading of {} failed", .0)]
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ method cannot be called on `&anyhow::Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.34/src/lib.rs:364:1
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct Error {
[INFO] [stdout]     | ---------------- doesn't satisfy `anyhow::Error: StdError` or `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `anyhow::Error: StdError`
[INFO] [stdout]             which is required by `anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout]             `&anyhow::Error: StdError`
[INFO] [stdout]             which is required by `&anyhow::Error: thiserror::private::AsDynError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ipfs-0.2.1/src/lib.rs:1321:61
[INFO] [stdout]      |
[INFO] [stdout] 1321 |                         let _ = sender.send(Err(Error::from(e)));
[INFO] [stdout]      |                                                 ----------- ^ expected `Error`, found `TransportError<Error>`
[INFO] [stdout]      |                                                 |
[INFO] [stdout]      |                                                 arguments to this function are incorrect
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected struct `anyhow::Error`
[INFO] [stdout]                   found enum `TransportError<std::io::Error>`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/convert/mod.rs:594:7
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ipfs` (lib) due to 135 previous errors
[INFO] running `Command { std: "docker" "inspect" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1", kill_on_drop: false }`
[INFO] [stdout] fe066539ad59ca666ddc443f2909f304386f0827c3283336a41ce6a3c27ad0e1
